/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Actividad;

import educar.models.Actividad;
import educar.models.Docente;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JOptionPane;

/**
 *
 * @author gaston
 */
public class AgregarActividadController implements ActionListener, WindowListener{
    
    //Atributo usado para crear una ventana para el tratamiento de una actividad
    private AgregarActividadView agregarActividadView;
    
    //Atributo usado para almacenar los datos de una actividad
    private String vector[] = new String[5];
            
    //Atributo usado para crear una instancia del mediador
    private ActividadController actividadController;
    
    // <editor-fold defaultstate="collapsed" desc="Constructor">
    /**
     * <hr>
     * AgregarActividadController(): Constructor de la clase AgregarActividadController
     * <hr>
     * @param actividadControler 
     */
    public AgregarActividadController(ActividadController actividadControler){
        actividadController = actividadControler;
        agregarActividadView = new AgregarActividadView();
        agregarActividadView.setActionListener(this);
        agregarActividadView.setWindowListener(this);
    }
 // </editor-fold>

    
// <editor-fold defaultstate="collapsed" desc="Constructor">
    
    public AgregarActividadController(String[] arreglo){
        
    }
    
// </editor-fold>
 
    
    
// <editor-fold defaultstate="collapsed" desc="//Action setView">    
    /**
     * <hr>
     * setView(): Este metodo hace visible a una ventana.
     * <hr>
     */
    public void setView() {
        agregarActividadView.setVisible(true);
    }
// </editor-fold>  
    
    
 // <editor-fold defaultstate="collapsed" desc="Metodos ActionPermormed">
    @Override
    /**
     * <hr>
     * actionPerformed(): Este metodo recibe el evento de un boton.
     * Boton CANCELAR cierra la ventana.
     * Boton ACEPTAR agrega la actividad a la base de datos y a la tabla.
     * <hr>
     */
    public void actionPerformed(ActionEvent e) {
        
        //Evalua la procedencia del evento del boton
        Object source = e.getSource();
        if (agregarActividadView.getJbCancelar() == source){ //Cancelar
            agregarActividadView.dispose();//Cierra la ventana
        }
        if (agregarActividadView.getJbAgregar() == source){ //Aceptar 
            
            if (!((agregarActividadView.getTextoActividad().length() == 0) || (agregarActividadView.getDescripcion().length() == 0) || (agregarActividadView.getCodigoMateria().length() == 0))||agregarActividadView.getFechaEntrega().length()==0) {
                Actividad actividad = new Actividad(agregarActividadView.getTextoActividad(),agregarActividadView.getDescripcion(),agregarActividadView.getCodigoMateria(),agregarActividadView.getFechaEntrega());
                if (actividad.save()) { 
                    vector[0] = agregarActividadView.getTextoActividad(); 
                    vector[1] = agregarActividadView.getDescripcion();
                    vector[2] = agregarActividadView.getCodigoMateria();                             
                    vector[3] = agregarActividadView.getFechaEntrega();
                    actividadController.agregarATabla(vector);
                    agregarActividadView.dispose();
                } 
                else { //la actividad  ya existe
                    JOptionPane.showMessageDialog(null,"Ya existe un registro con el codigo "+ agregarActividadView.getTextoActividad()+".","proyecto 2012",JOptionPane.WARNING_MESSAGE);
                }
            }
            else { //No se ingresaron todos los datos del docente
                JOptionPane.showMessageDialog(null,"Existe al menos un campo sin completar.\n\nRevise los campos ingresados","proyecto 2012",JOptionPane.WARNING_MESSAGE);
            }
        }
    }//Fin del metodo actionPerformed().
    
// </editor-fold>
   
    
// <editor-fold defaultstate="collapsed" desc="Metodos ActionPerformed no usadas">

    @Override
    public void windowOpened(WindowEvent e) {
        
    }

    @Override
    public void windowClosing(WindowEvent e) {
        
    }

    @Override
    public void windowClosed(WindowEvent e) {
        
    }

    @Override
    public void windowIconified(WindowEvent e) {
        
    }

    @Override
    public void windowDeiconified(WindowEvent e) {
        
    }

    @Override
    public void windowActivated(WindowEvent e) {
        
    }

    @Override
    public void windowDeactivated(WindowEvent e) {
        
    }
// </editor-fold>   
    

}//Fin de la clase AgregarActividadController.
